package com.fanqie.springboot2.simple;

import org.springframework.scheduling.annotation.Scheduled;

import java.time.LocalDateTime;

/**
 * @author php
 * @date 2019/7/9
 */
//@Component 注释掉，为了不防止ThreadPoolTaskScheduler定时任务测试
public class SimpleScheduler {
    /**
     * 每10秒执行一次定时任务
     */
    @Scheduled(cron = "*/10 * * * * ?")
    public void firstTask() {
        System.out.println("当前时间：" + LocalDateTime.now());
    }


    /**
     * 上一次任务执行完成后，再等待fixedDelay时长后，执行下一次任务
     */
    @Scheduled(fixedDelay = 1000L)
    public void secondTask() throws InterruptedException {
        System.out.println("开始时间：" + LocalDateTime.now());
        Thread.sleep(2000L);
        System.out.println("结束时间：" + LocalDateTime.now());
    }


    /**
     * 每隔一秒执行该定时任务，如果任务运行时间>fixedRate，则在上一次任务执行结束后，执行下一次任务
     */
    @Scheduled(fixedRate = 1000L)
    public void thirdTask() throws InterruptedException {
        System.out.println("开始时间：" + LocalDateTime.now());
        Thread.sleep(2000L);
        System.out.println("结束时间：" + LocalDateTime.now());
    }


}
